home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / elan1v5.arc / DEMO.ARC / PRIMES.E < prev    next >
Text File  |  1989-03-10  |  1KB  |  64 lines

  1.  
  2. PROC put (INT CONST a):
  3.   IF get column + int length > xsize
  4.   THEN line
  5.   FI;
  6.   put (text (a, int length))
  7. ENDPROC put;
  8.  
  9. primtab:
  10.   LET limit = 1000;
  11.   calculate int length;
  12.   start table;
  13.   WHILE m < limit
  14.   REP
  15.     try if m is prime;
  16.     take next m
  17.   ENDREP;
  18.   how long.
  19.  
  20.   calculate int length:
  21.     INT VAR lgth :: 1;
  22.     WHILE 10 ** lgth < limit
  23.     REP lgth INCR 1
  24.     ENDREP;
  25.     INT CONST int length :: lgth + 2.
  26.   
  27.   start table:
  28.     put ("Table of prime numbers <");
  29.     put (limit);
  30.     line (2);
  31.     put (2);
  32.     INT VAR m :: 3.
  33.   
  34.   try if m is prime:
  35.     INT VAR k :: 3;
  36.     WHILE m may be divisible
  37.     REP
  38.       try k as divisor;
  39.       increase k
  40.     ENDREP;
  41.     put (m).
  42.   
  43.     m may be divisible:
  44.       k * k <= m.
  45.     
  46.     try k as divisor:
  47.       IF m MOD k = 0
  48.       THEN
  49.         LEAVE try if m is prime
  50.       FI.
  51.     
  52.     increase k:
  53.       k INCR 2.
  54.     
  55.   take next m:
  56.     m INCR 2.
  57.   
  58.   how long:
  59.     line (2);
  60.     put ("Time= ");
  61.     put (exectime);
  62.     put (" sec.").
  63.